Computer systems store data in a number of different storage systems. One common computer system storage system is that of hard disk drives. In a hard disk drive, the bits (i.e., "1's" and "0's") of digital data are stored magnetically onto one or more disks. A transducer is positioned by an actuator assembly over a spinning disk. Often, the same transducer is used to write the data onto the spinning disk as well as read data that had been previously stored. However, errors may occasionally occur due to any number of reasons (e.g., small portions of the disk media might become corrupted, electrical interference, electromechanical failures, etc.). Unless these errors are fixed, the data will become compromised. This may lead to serious consequences. For example, incorrect financial data can be disastrous. Furthermore, any errors in a computer program stored in a hard disk drive may cause the entire computer system to crash. It is virtually impossible to economically manufacture hard disk drives which are impervious to errors. Further exacerbating the seriousness of these errors is the trend to implement new magneto-resistive (MR) technology. In the near future, MR technology will allow disk drives to significantly increase their storage capacity versus the more traditional thin-film technology widely used today. However, MR technology is less reliable; errors are more frequent and likely to occur. Thus, there must be some mechanism for detecting and correcting any errors which might be encountered.
One way to correct for potential errors involves appending error correction code (ECC) bits at the end of each data segment. Before data is actually written to a disk, the disk drive calculates a unique ECC for each of the data segments. The data along with its unique set of ECC bits are written to the disk. Subsequently, when the data is later read back from the disk, the corresponding ECC bits are also read back. The disk drive checks the retrieved data against its corresponding ECC to determine whether there were any errors in the retrieved data. If there are no errors, the disk drive continues with its normal mode of operations. However, if an error is detected, the disk drive attempts to correct the error based on the ECC bits.
Although this prior art error correction mechanism functions properly, it is extremely slow. More particularly, if a second error is encountered while the error correction circuit is attempting to fix a prior error condition, the entire disk drive must shut down. There is typically no mechanism for handling two errors at the same time. The entire disk drive remains disabled until the first error is resolved. Thereupon, the sector containing the second error must then be re-read. This imposes another delay while the disk is spun to the corresponding location. Recurrent delays detrimentally impact the overall speed of the disk drive system. Moreover, some disk drive are highly sensitive to even modest amounts of disruption. For instance, audio/video (A/V) disk drives cannot tolerate much delay due to the real-time nature of audio and video. Audio as well as video data are magnetically stored within the hard disk drive as a continuous bit stream. This data is then subsequently read back from the disk drive for playback at the discretion of the user. Any significant interruption in the read-back of the data would result in perceptible audio glitches and visually disturbing video artifacts.
Thus, there is a need in the disk drive industry for a fast, economical, and effective error correction mechanism. The present invention offers a novel solution that employs a pipelined error correction approach. This pipelined approach minimizes the number of re-reads which improves the performance of the disk reading speed, especially in an error-prone environment.